package util;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

public class FileUtil {

    /**
     * 递归遍历根目录下所有.log和.db后缀的文件
     * @param dirPath
     * @param fileList
     * @return
     */
    public static List<File> getLogFile(String dirPath, List<File> fileList) {
        if (fileList == null) {
            fileList = new ArrayList<>();
        }

        File file = new File(dirPath);
        // 获取目录下的所有文件或文件夹
        File[] files = file.listFiles();
        // 如果目录为空，直接退出
        if (files == null) {
            return fileList;
        }

        // 遍历，目录下的所有文件
        for (File f : files) {
            if (f.isFile() && f.getName().endsWith(".log") || f.isFile() && f.getName().endsWith(".db")) {
                fileList.add(f);
            } else if (f.isDirectory()) {
                getLogFile(f.getAbsolutePath(), fileList);
            }
        }
        return fileList;
    }

    public static void main(String[] args) {
        List<File> list = FileUtil.getLogFile("D:\\run_data_file\\logFile", null);
        for (File f: list) {
            System.out.println(f.getName());
        }
    }
}
